#ifndef __WIZ_VFS_BLOCKSTORAGE_DIRTREE_HPP__SHANHAOBO_19800429__
#define __WIZ_VFS_BLOCKSTORAGE_DIRTREE_HPP__SHANHAOBO_19800429__

#include "../../../Include/Core/File/WizFilePath.hpp"
#include "../../../Include/Core/File/WizFile.hpp"
#include "../../../Include/Core/Accessor/WizAccessor.hpp"

#include "../../../Include/Core/Archive/WizArchive.hpp"

#include "../../../Include/VFS/WizVFSDirTree.hpp"

namespace Wiz
{
    namespace VFS
    {
        namespace BlockStorage
        {
            namespace DirTree
            {
                struct Type : public ::Wiz::VFS::DirTree::Type<Type>
                {
                    typedef ::Wiz::VFS::DirTree::Type<Type> tSuper;
                    virtual ::Wiz::Void::Type Serialize(::Wiz::Archive::InOut);

                    ::Wiz::Size32::Type m_Size;
                    ::Wiz::UInt32::Type m_ChunkID;
                    ::Wiz::UInt16::Type m_BlockID;
                public:

                    Type(::Wiz::UTF8::String::In InName, ::Wiz::Bool::In InIsFile)
                        : tSuper(InName, InIsFile)
                        , m_Size(0)
                        , m_ChunkID(0)
                        , m_BlockID(0)
                    {
                    }

                    Type()
                        : tSuper()
                        , m_Size(0)
                        , m_ChunkID(0)
                        , m_BlockID(0)
                    {
                    }
                };
                WIZ_DECLARE(::Wiz::VFS::BlockStorage::DirTree::Type);
            } /// end of namespace DirTree
        } /// end of namespace BlockStorage
    } /// end of namespace VFS
} /// end of namespace Wiz

#endif /*__WIZ_VFS_BLOCKSTORAGE_DIRTREE_HPP__SHANHAOBO_19800429__*/

